//
// Created by user on 20-4-24.
//

#ifndef _MALLOC_H_
#define _MALLOC_H_

#include "Slab.h"

/*================================= 函数声明区 =================================*/
/**
 * 内核分配内存函数
 * @param size 要分配的大小
 * @param flages 分配内存的类型
 * @return 返回内存地址
 */
void *kmalloc(unsigned long size, unsigned long flages);

/**
 * 创建新的Slab
 * @param size 要创建的内存池的大小
 * @return 成功返回创建好的内存池的地址，失败返回空值
 */
Slab *kmallocCreate(unsigned long size);

/**
 * 内核释放内存函数
 * @param address 要释放的地址
 * @return 成功返回 1 失败返回 0
 */
unsigned long kfree(void *address);

#endif //_MALLOC_H_
